/**
 * @file rtos.c
 * @brief rtos 初始化与默认任务创建文件
 * @author livmee
 * @version 1.0
 * @date 20250218
 */

/* 包含必要的头文件 */
#include "FreeRTOS.h"
#include "task.h"
#include "rtos.h"

/* 宏定义 */

/* 类型定义 */

/* 全局变量 */
static TaskHandle_t default_task_handle;
static TaskHandle_t test_task_handle;
/* 函数声明 */
void default_task_fun(void *arg);
void test_task_fun(void *arg);
/* 函数定义 */

/**
 * @brief 初始化 FreeRTOS
 * @param
 * @retval
 */
void Core_FreeRTOSInit()
{
    while (xTaskCreate(default_task_fun, "default task", 128, NULL, 1, &default_task_handle) != pdPASS)
    {
    }
    while (xTaskCreate(test_task_fun, "test task", 128, NULL, 1, &test_task_handle) != pdPASS)
    {
    }
    vTaskStartScheduler();
}

/**
 * @brief 默认任务函数
 * @param
 * @retval
 */
void default_task_fun(void *arg)
{
    while (1)
    {
    }

    // 安全措施
    vTaskDelete(NULL);
}

/**
 * @brief 默认任务函数
 * @param
 * @retval
 */
void test_task_fun(void *arg)
{
    while (1)
    {
    }

    // 安全措施
    vTaskDelete(NULL);
}